package com.gblw.rjkf.pj.current.global;

import cn.dev33.satoken.exception.SaTokenException;
import com.gblw.rjkf.pj.utils.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
public class GlobalExceptionHandler {
    @ResponseBody
    @ExceptionHandler(SaTokenException.class)
    public Result handlerException(SaTokenException e) {
        e.printStackTrace();
        if(e.getCode() == 11001) {
            return Result.error("未能读取到有效Token",11001);
        }
        if(e.getCode() == 11011) {
            return Result.error("未能读取到有效Token",11011);
        }
        if(e.getCode() == 11012) {
            return Result.error("登录失效",11012);
        }
        if(e.getCode() == 11013) {
            return Result.error("Token已过期",11013);
        }
        if(e.getCode() == 11014) {
            return Result.error("Token已被顶下线",11014);
        }
        if(e.getCode() == 11015) {
            return Result.error("Token已被踢下线",11015);
        }

        if(e.getCode() == 11041) {
            return Result.error("缺少指定的角色",11041);
        }
        if(e.getCode() == 11051) {
            return Result.error("缺少指定的权限",11051);
        }

        if(e.getCode() == 30002) {
            return Result.error("redirect 重定向 url 不在 allowUrl 允许的范围内");
        }
        if(e.getCode() == 30004) {
            return Result.error("提供的 ticket 是无效的");
        }

        if(e.getCode() == 30002) {
            return Result.error("redirect 重定向 url 不在 allowUrl 允许的范围内");
        }
        if(e.getCode() == 30004) {
            return Result.error("提供的 ticket 是无效的");
        }

        return Result.error(e.getMessage());
    }



//    @ResponseBody
//    @ExceptionHandler(Exception.class)
//    public Result handlerException(Exception e) {
//        return Result.error("该死，程序出错了，杀了程序员祭天把");
//    }
}